﻿using System;
using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;

namespace ApresentacaoSilverlight
{

    public class ClasseTextBoxTeste : INotifyPropertyChanged
    {
        private int _inteiro;
        public int Inteiro
        {
            get { return _inteiro; }
            set
            {
                _inteiro = value;
                NotifyPropertyChanged("Inteiro");
            }
        }

        private int _inteiroNegativo;
        public int InteiroNegativo
        {
            get { return _inteiroNegativo; }
            set
            {
                _inteiroNegativo = value;
                NotifyPropertyChanged("InteiroNegativo");
            }
        }

        private decimal _decimal;
        public decimal Decimal
        {
            get { return _decimal; }
            set
            {
                _decimal = value; 
                NotifyPropertyChanged("Decimal");
            }
        }

        private decimal _decimalNegativo;
        public decimal DecimalNegativo
        {
            get { return _decimalNegativo; }
            set
            {
                _decimalNegativo = value;
                NotifyPropertyChanged("DecimalNegativo");
            }
        }

        private void NotifyPropertyChanged(String info)
        {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(info));
        }

        public event PropertyChangedEventHandler PropertyChanged;
    }

    public partial class MainPage
    {
        public MainPage()
        {
            InitializeComponent();
            Loaded += MainPage_Loaded;
        }

        private readonly ClasseTextBoxTeste classeTextBox = new ClasseTextBoxTeste{Inteiro = 30, Decimal = new decimal(5.5)};

        void MainPage_Loaded(object sender, RoutedEventArgs e)
        {
            LayoutRoot.DataContext = classeTextBox;
        }
    }
}
